﻿@using KPIS.GERP.Models.ViewModel
@using KPIS.GERP.Models.HRM
@using KPIS.GERP.Models.ICM
@model IEnumerable<InventoryStockTaking>

@{
    
    ViewBag.Title = "ระบบพัสดุและครุภัณฑ์ [TK]";
    ViewBag.Descr = "รายการพัสดุและครุภัณฑ์";
    ViewBag.Remark = "ถ้ายังไม่มีการอนุมัติ ปุ่มอนุมัติจะแสดงก็ต่อเมื่อมีรายการตรวจนับ และมีรายชื่อคณะกรรมการแล้วเท่านั้น!";

    var jobsiteService = new KPIS.GERP.WEB.GIMS.JobsiteService.JobsiteServiceClient();
    var MasLookUpService = new KPIS.GERP.WEB.GIMS.IcmMasLookUpService.IcmMasLookUpServiceClient();
}

@using (Html.BeginForm("DeleteAll", "PurchaseCheckAsset", FormMethod.Post))
{
    @Html.AntiForgeryToken()

  <div class="row-fluid">
        <div class="block-button-menu-above">
            @Html.ButtonAdd()
            @Html.ButtonDeleteAll()
        </div>
        @Html.ValidationSummary(true, "", new { @class = "alert alert-error" })
        <div class="row-fluid">
            <div class="table-header span12">
				<div class="span10">@ViewBag.Title</div>
				@Html.Partial("_ExportButton")
            </div>
        </div>

        <table id="table" class="table table-striped table-bordered table-hover" aria-describedby="table_info">
            <thead>
                <tr>
                    <th class="center" style="width: 50px;">
                        <!-- Check box delete multiple records column-->
                        <label>
                            <input type="checkbox" />
                            <span class="lbl"></span>
                        </label>
                    </th>
                    <th>
                       วันที่ตรวจนับ
                    </th>
                    <th>
                        รหัสรายการ
                    </th>
                    <th>
                       รายการ
                    </th>
                    <th>
                        สถานที่
                    </th>
                    <th>
                        หมายเหตุ
                    </th>
                    <th>
                        @*ประเภทพัสดุ*@ คลังพัสดุ
                    </th>
                    <th>
                        สถานะ
                    </th>
                    <th class="center" style="width: 80px;">
                        <!-- Empty head column for export buttons -->&nbsp;
                    </th>
                </tr>
            </thead>

            <tbody>
                @foreach (var m in Model)
                {
                    <tr>
                        <td class="center">
                            <!-- Check box all for delete multiple records -->
                            @{if (m.RecordStatus == KPIS.GERP.Models.SYS.RecordStatus.WaitStatus)
                              {
                                <label>
                                    <input type="checkbox" name="deleteIds" value="@(m.StockTakingId)"/>
                                    <span class="lbl"></span>
                                </label>
                              }
                              else
                              {
                                  <label>
                                         <input type="checkbox" name="uncheck" disabled="disabled" />
                                         <span class="lbl"></span>
                                  </label>
                              }
                                
                            }
                            
                        </td>
                        <td>
                            @Html.DisplayFor(model => m.CreatedWhen)
                        </td>
                        <td>
                            @Html.ActionLink(@m.StockTakingCode, "Details", new { Id = m.StockTakingId})
                        </td>
                        <td>
                            @Html.DisplayFor(model => m.StockTakingDesc)
                        </td>
                        <td>
                            @{
                               string JobSiteName = jobsiteService.SelectNameJobSite(m.JobSiteId ?? 0);
                            }
                            @Html.DisplayName(JobSiteName)
                        </td>
                        <td>
                            @Html.DisplayFor(model => m.StockTakingRemark)
                        </td>
                        <td>
                            @m.Warehouse.Name

                           @*@{
                                string MasLookUpName = MasLookUpService.SelectNameMasLookUp(m.ResourceTypeId ?? 0);
                           }
                            @Html.DisplayName(MasLookUpName)*@
                        </td>
                        <td style="text-align: center; font-weight:bold">
                            @*@{if(m.RecordStatus == "U")
                                {
                                   @Html.DisplayName("ยังไม่ส่งอนุมัติ")
                                }
                                else
                                {
                                   @Html.DisplayName("อนุมัติผ่าน")
                                }
                            }*@
                            <span class="
                                @{
                                        switch (m.RecordStatus)
                                        {
                                            case "U": @:text-info
                                                                                               break;
                                            case "A": @:text-success
                                                                                               break;
                                            case "W": @:text-warning
                                                                                               break;
                                            case "P": @:muted 
                                                                                               break;
                                            case "J": @:red
                                                                                               break;
                                            default:
                                                                                               break;
                                        }
                                }">
                                @KPIS.GERP.Models.SYS.RecordStatus.RecordStatusName(m.RecordStatus)

                            </span>
                        </td>
                        <td class="td-actions">
                              @* ถ้ายังไม่มีการส่งอนุมัติ ก็จะสามารถแก้ไข หรือลบ รายการได้ *@
                                @if (m.RecordStatus == KPIS.GERP.Models.SYS.RecordStatus.WaitStatus)
                                {
                                    var service = new KPIS.GERP.WEB.GIMS.PurchaseCheckAssetService.PurchaseCheckAssetServiceClient();
                                    
                                    // IsCommittee คือ ตรวจสอบว่ารายการจำหน่ายแต่ละอันมีคณะกรรมการแล้วหรือยัง
                                    // ถ้าเป็น True หมายความว่า มีคณะกรรมการ  แต่ถ้าเป็น False หมายความว่า ยังไม่มีคณะกรรมการ
                                    bool IsCommittee = service.IsCommittee(m.StockTakingId);

                                    var modelStockTakingItem = service.SelectInventoryStockTakingItem(new InventoryStockTakingItem
                                        {
                                            RecordStatus = "!" + KPIS.GERP.Models.SYS.RecordStatus.DeletedStatus,
                                            StockTakingId = m.StockTakingId
                                        }, null).ToList();

                                        // เช็คว่าใบจำหน่ายวัสดุยังมีรายการที่ได้เลือกจำหน่ายไว้หรือไม่
                                        // ถ้ายังมีรายการอยู่ข้างใน ก็จะมีกล่องข้อความเตือนว่า "ถ้าต้องการลบรายการนี้ กรุณาเข้าไปลบรายละเอียดให้หมดก่อน จึงจะสามารถลบได้"
                                        // แต่ถ้าไม่มีก็จะสามารถลบใบรายการจำหน่ายได้เลย
                                    if (modelStockTakingItem.Count > 0)
                                        {
                                            @Html.ButtonDetails(new { id = m.StockTakingId }, true)
                                            @Html.ButtonEdit(new { id = m.StockTakingId }, true)
                                            <a href="#" role="button" class="btn btn-danger btn-mini" aria-disabled="true" onclick="DelEvent()">
                                                <i class="icon-trash bigger-120"></i>
                                            </a>
                                    
                                            // เช็คว่ามีคณะกรรมการหรือไม่
                                            if (IsCommittee.Equals(true))
                                            { 
                                                 @Html.ActionLink("  อนุมัติ", "Approved", new { StockTakingId = m.StockTakingId }
                                                    , new { @class = "btn btn-small btn-mini btn-yellow button-standard-width icon-plus", role = "button" })
                                            }
                                        }
                                        else
                                        {   
                                            @Html.ButtonDetails(new { id = m.StockTakingId }, true)
                                            @Html.ButtonEdit(new { id = m.StockTakingId }, true)
                                            @Html.ButtonDelete(new { id = m.StockTakingId }, true)
                                        }

                                    
                                    
                                }
                                else
                                {
                                    @Html.ButtonDetails(new { id = m.StockTakingId }, true)
                                }    
                        </td>
                    </tr>
                }
            </tbody>
        </table>
      <span style="color:red; font-style:oblique">@ViewBag.Remark</span>  
    </div>
}

@section scripts {
    
	<script type="text/javascript">

	    function DelEvent() {
	        bootbox.alert("ถ้าต้องการลบรายการนี้ กรุณาเข้าไปลบรายละเอียดให้หมดก่อน จึงจะสามารถลบได้");
	    }

		$(function () {
			var oTable1 = $('#table').dataTable({
				"aoColumns": [
                    { "bSortable": false },
                    null,
                    null,
                    null,
                    null,
                    null,
                    null,
                    null,
                    { "bSortable": false }
				]
			});

			$('table th input:checkbox').on('click', function () {
				var that = this;
			    //$(this).closest('table').find('tr > td:first-child input:checkbox [name="deleteIds"]')
			    $("[name='deleteIds']")
				.each(function () {
					this.checked = that.checked;
					$(this).closest('tr').toggleClass('selected');
				});

			});

			$('[data-rel=tooltip]').tooltip();

			$("form").submit(function () {
				var currentForm = this;
				bootbox.confirm(function (result) {
					var _result = result;
					if (result) {
						$.ajax({
						    url: '@(Url.Action("DeleteAll", "PurchaseCheckAsset"))',
							type: "post",
							dataType: "json",
							data: $(currentForm).serialize(),
							success: function (result) {
								if (result.success) {
									location.reload();
								}
								else {
								}
							}
						});
					}
				})
				return false;

			});

		})

	</script>

}
